34. 反向传播
反向传播
现在,我们准备好训练神经网络了。为此,我们将使用一种方法,叫做反向传播。简而言之,反向传播将包括:
- 进行前向反馈运算。
- 将模型的输出与期望的输出进行比较。
- 计算误差。
- 向后运行前向反馈运算(反向传播),将误差分散到每个权重上。
- 更新权重,并获得更好的模型。
- 继续此流程,直到获得很好的模型。
听起来比较复杂,实际上要简单些。我们看看后续几个视频。第一个视频将从概念上解释什么是反向传播。
DL 43 Backpropagation V2 (1)
反向传播数学
后面的几个视频将深入讲解数学知识。如果不想听也没有关系,现有的很多代码库和深度学习框架比如 Keras,能够很好并且很简单地完成这个任务。如果你想立即开始训练网络,请转到下个部分。但是如果你喜欢计算各种导数,那么我们深入了解下吧!
DL 44 Calculating The Gradient 1 (1)
纠正:1‘左右,Multi-layer Perceptron 中 第二层级的 输出 不会影响第三层级的bias。
链式法则
我们需要复习下链式法则,以便计算导数。
DL 45 Chain Rule
DL 46 Calculating The Gradient 2 V2 (1)
修正:
视频中0:58中的右侧前两个公式有误,应更正为:
h_1 = W^1_{11} x_1 + W^{1}{21} x{2} + W^1_{31}
h_2 = W^1_{12} x_1 + W^{1}{22} x{2} + W^1_{32}
视频2:56s处字幕“乘以 hi相对于W11 的导数”,需改为“乘以 h1 相对于W11的导数”
计算 sigmoid 函数的导数
回想一下,sigmoid 函数有一个完美的导数,我们可以在下面的计算中看到。这将使我们的反向传播步骤更加简洁。
